var PATH_PREFIX ="";
function setPathPrefix(path){
	PATH_PREFIX =  path;
}
$(function() {
	// select2控件初始化
	$(".select2").select2();
	// 初始化时间控件
	WASP_WIDGET.triggerDateStyleWithYMD("#publishTime");
	
	//初始化校验
	initValid();
	
	//对select控件绑定验证事件
	triggerValidOnSelectChange('operationMode');
	//是否开放change事件(资管计划期限内是否开放)
	$('#operationMode').change(function(event) {
		operationModeChange();
	});
	
	//是否开放change事件
	var operationMode = $("#operationMode").val();
	if ("1" == operationMode) {
		$("#openFrequency").removeAttr("disabled");
		
		//校验必填
		/*$("#openFrequency").rules("add", {
			required : true, messages:{required:"流动性安排不能为空"}
		});*/
	}
});

function operationModeChange() {
	debugger;
	var selectOption = $("#operationMode").val();
	if ("1" == selectOption) {
		$("#openFrequency").removeAttr("disabled");
		
		//校验必填
		/*$("#openFrequency").rules("add", {
			required : true, messages:{required:"流动性安排不能为空"}
		});*/
	} else {
		$("#openFrequency").val("");
		$("#openFrequency").trigger("change");
		$("#openFrequency").attr("disabled", "disabled");
		
		/*$("#openFrequency").rules("remove");*/
	}
	/*$("#openFrequency").valid && $("#openFrequency").valid();*/
}


//获取选中的值
function chosenData(){
	debugger;
	// 获取选中的值
	var flag = '';
	//遍历
	$('.flag.checked').each(function(index,element){
		flag += $(element).attr("value")+',';
    });
    if(flag.length > 0){
    	flag = flag.substr(0,flag.length-1);
    }
    $('#prdFlag').val(flag);
    console.log("prdFlag:"+$('#prdFlag').val());
   
    
	
}

// 切换样式
function choosePrdFlag(elem){
	var attr = $(elem).attr("class");
	if(attr.indexOf("checked") > -1){
		// 选中
	    $(elem).removeClass('checked');
	}else{
		$(elem).addClass('checked');
	}
}

//表单提交
function submitForm(){

	SubmitAndPreventSecond("addForm",function() {
		chosenData();
		
		if(!$("form[name='addForm']").valid()) {
			toastr.warning('', '请完善信息');
			return false;
		}

		if (!validateData())
			return;

		var url = PATH_PREFIX + "savePrdInfo.do";
		var subPrdCode = $('#subPrdCode').val();
		if(subPrdCode && subPrdCode.length > 0){
			url = PATH_PREFIX + "updatePrdInfo.do";
		}
		$('#addForm').attr('action', url);
		
		return true;
		
		
		
		
	}, true);
}

//子产品简称校验唯一性


function initValid(){
	$("#addForm").validate({
		focusCleanup : true,
			   rules :{
				   'subFundSname':{
					   required : true,
					   isRepeat : true,
					   maxlength4Byte : 100
				   },
				   'subFundLname':{
					   required : true,
					   maxlength4Byte : 200
				   },
				   'publishTime':{
					   required : true
				   },
				   'prdRiskLevel':{
					   required : true
				   },
				   'prdCategory':{
					   required : true
				   },
				   'prdTerm':{
					   required : true,
					   number:true,                
		               min:0 
				   },
				   'operationMode':{
					   required : true
				   },
				   'expectedRaiseAmt':{
					   required : true
				   },
				   'initParValue':{
					   required : true
				   },
				   /*'indBookStart':{
					   required : true
				   },*/
				   /*'insBookStart':{
					   required : true
				   },*/
				   /*'openFrequency':{
					   required : true
				   },*/
				  /* 'fitCycle':{
					   required : true
				   },*/
				   'investSpec':{
					   /*required : true,*/
					   maxlength4Byte : 4000
				   },
				   'subPrdPrcStatus':{
					   required : true
				   },
				   /*'prdFlag':{
					   required : true
				   },*/
				   'expectedClientYield':{
					   /*required : true,*/
					   maxlength4Byte : 200
				   },
				   'breachFeeRate':{
					   required : true
				   },
				   'bookFeeRate':{
					   required : true
				   },
				   'declareFeeRate':{
					   required : true
				   },
				   'redeemFeeRate':{
					   required : true
				   }
			   },
			   messages :{
				   'subFundSname':{
					   required : '产品简称不能为空',
					   isRepeat : '产品简称已存在，请重新输入',
					   maxlength4Byte:'长度不能超过100'
				   },
				   'subFundLname':{
					   required : '产品全称不能为空',
					   maxlength4Byte:'长度不能超过200'
				   },
				   'publishTime':{
					   required : '发布时间不能为空'
				   },
				   'prdRiskLevel':{
					   required : '风险级别不能为空'
				   },
				   'prdCategory':{
					   required : '产品分类不能为空'
				   },
				   'prdTerm':{
					   required : '存续期限不能为空',
					     number : '请输入合法的数字',                
			                min : '请输入大于零的数字' 
				   },
				   'operationMode':{
					   required : '运作模式不能为空'
				   },
				   'expectedRaiseAmt':{
					   required : '产品规模不能为空'
				   },
				   'initParValue':{
					   required : '初始份额面值不能为空'
				   },
				   /*'indBookStart':{
					   required : '最低认购金额(个人)不能为空'
				   },*/
				   /*'insBookStart':{
					   required : '最低认购金额(机构)不能为空'
				   },*/
				   /*'openFrequency':{
					   required : '流动性安排不能为空'
				   },*/
				   /*'fitCycle':{
					   required : '产品收益分配不能为空'
				   },*/
				   'investSpec':{
					  /* required : '投资范围不能为空',*/
					   maxlength4Byte:'长度不能超过4000'
				   },
				   'subPrdPrcStatus':{
					   required : '子产品过程状态不能为空'
				   },
				   /*'prdFlag':{
					   required : '产品标识不能为空'
				   },*/
				   'expectedClientYield':{
					   /*required : '业绩比较基准不能为空',*/
					   maxlength4Byte:'长度不能超过200'
				   },
				   'breachFeeRate':{
					   required : '退出费率不能为空'
				   },
				   'bookFeeRate':{
					   required : '认购费率不能为空'
				   },
				   'declareFeeRate':{
					   required : '申购费率不能为空'
				   },
				   'redeemFeeRate':{
					   required : '赎回费率不能为空'
				   }
			   }
	});
}



jQuery.validator.methods["isRepeat"]=(function(value,element){
	debugger;
	//验证是否重复，pass为false校验不通过
	var pass = true;
	var subFundSname = $("#subFundSname").val();
	var subPrdCode = $("#subPrdCode").val();
	if(subPrdCode == null && subPrdCode == ''){
		subPrdCode = null;
	}
	if(!subFundSname)
		return true;
	
	$.ajax({
		  url: PATH_PREFIX+"isRepeat.do",
		  dataType: "json",
		  type: "POST",
		  cache: false,
		  async: false,
		  data: {
			  subPrdCode : subPrdCode,
			  subFundSname : subFundSname
		  },
		  success: function( data ) {
				if(data){
					pass=data.success;
				}
		  },
		  error: function(jqXHR, textStatus, errorThrown){
				ctools.alert("查询失败" + textStatus);
				pass = false;
		  }
	});
	return this.optional(element) || pass;
});

function validateData(){
	
	if(num34("initParValue","初始面值只能为正数，且为3位整数4位小数","初始面值")){
		return false;
	}
	// 违约退出费率校验
	if(checkIsIntOrDouble("breachFeeRate","退出费率只能为小于等于100的正数或0")){
		return false;
	}
	// 认购费率校验
	if(checkIsIntOrDouble("bookFeeRate","认购费率只能为小于等于100的正数或0")){
		return false;
	}
	// 申购费率校验
	if(checkIsIntOrDouble("declareFeeRate","申购费率只能为小于等于100的正数或0")){
		return false;
	}
	// 赎回费率校验
	if(checkIsIntOrDouble("redeemFeeRate","赎回费率只能为小于等于100的正数或0")){
		return false;
	}
	
	return true;
}

//3位整数 4位小数
function num34(id, promptInfo,word) {
	if ($("#" + id + "").val() == "") {
		ctools.alert(word+"不能为空", "", "warning");
	    $("#"+id).focus();
		return true;
	}
	// 允许填写零
	/*if ($("#" + id + "").val() == 0) {
		ctools.alert(promptInfo, "", "warning");
	    $("#"+id).focus();
	    return true;
	}*/
	var preRaseAmt = $("#" + id + "").val().replace(/,/g, "");
	var preRaseAmtNum = new Number(preRaseAmt);
	if (!checkStrIsNum(preRaseAmtNum)) {
		ctools.alert(promptInfo, "", "warning");
	    $("#"+id).focus();
	    return true;
	} else {
		var amtArrs = preRaseAmt.split(".");
		var regInt = new RegExp("^[0-9]{0,3}$");
		var regDec = new RegExp("^([0-9]{0,4})?$");
		if (!amtArrs[0].match(regInt) || (amtArrs[1] != null && !amtArrs[1].match(regDec))) {
			ctools.alert(promptInfo, "", "warning");
		    $("#"+id).focus();
		    return true;
		} else {
			$("#" + id + "").val(addFormatNumber34(preRaseAmtNum)/*addFormatNumber(preRaseAmtNum)*/);
			return false;
		}
	}

}

/**
 * 判断是否正数(0~100) 不包括零
 */
function checkIsIntOrDouble(id, promptInfo){
	var reg = /^([1-9]\d*\.\d*|0\.\d+|[1-9]\d*|0)$/;
	var value = $.trim($("#"+id).val());
	if(reg.exec(value) == null||value>100){
	    ctools.alert(promptInfo, "", "warning");
	    $("#"+id).focus();
	    return true;
	}
	return false;
}

/**
 * 3位整数 4位小数
 */
function fmtNum34(value) {
	if ($("#" + value + "").val() == "") {
		return false;
	}
	if ($("#" + value + "").val() == 0) {
		return false;
	}
	var preRaseAmt = $("#" + value + "").val().replace(/,/g, "");
	var preRaseAmtNum = new Number(preRaseAmt);
	if (!checkStrIsNum(preRaseAmtNum)) {
		return false;
	} else {
		var amtArrs = preRaseAmt.split(".");
		var regInt = new RegExp("^[0-9]{0,3}$");
		var regDec = new RegExp("^([0-9]{0,4})?$");
		if (!amtArrs[0].match(regInt) || (amtArrs[1] != null && !amtArrs[1].match(regDec))) {
			return false;
		} else {
			$("#" + value + "").val(addFormatNumber34(preRaseAmtNum)/*addFormatNumber(preRaseAmtNum)*/);
		}
	}

}

function addFormatNumber34(number) {
	var num = number + "";
	num = num.replace(new RegExp(",", "g"), "");
	// 正负号处理
	var symble = "";
	if (/^([-+]).*$/.test(num)) {
		symble = num.replace(/^([-+]).*$/, "$1");
		num = num.replace(/^([-+])(.*)$/, "$2");
	}

	if (/^[0-9]+(\.[0-9]+)?$/.test(num)) {
		var num = num.replace(new RegExp("^[0]+", "g"), "");
		if (/^\./.test(num)) {
			num = "0" + num;
		}

		var decimal = num.replace(/^[0-9]+(\.[0-9]+)?$/, "$1");
		if ("" == decimal) {
			decimal = ".0000";
		} else if (decimal.length == 2) { // 如果只有一个小数位，末尾补零。
			decimal = decimal + "000";
		} else if (decimal.length == 3) { // 如果只有两个小数位，末尾补零。
			decimal = decimal + "00";
		}else if (decimal.length == 4) { // 如果只有三个小数位，末尾补零。
			decimal = decimal + "0";
		}
		var integer = num.replace(/^([0-9]+)(\.[0-9]+)?$/, "$1");
		if ("" == integer) {
			integer = 0;
		}

		var re = /(\d+)(\d{3})/;

		while (re.test(integer)) {
			integer = integer.replace(re, "$1,$2");
		}
		return symble + integer + decimal;

	} else {
		if (number.indexOf(".") == 0) { // .xx的形式，开头补零
			return "0" + number;
		} else {
			return number;
		}
	}
}





